let utils = data.utils,
  STUtil = data.STUtil,
  Node = data.Node,
  SplayTree = data.SplayTree,
  isInBbox = data.isInBbox,
  getBboxOverlap = data.getBboxOverlap,
  cmp = data.cmp,
  rounder = data.rounder,
  geomIn = data.geomIn,
  geomOut = data.geomOut,
  operation = data.operation,
  Segment = data.Segment,
  SweepEvent = data.SweepEvent,
  SweepLine = data.SweepLine,
  polygonClipping = data.polygonClipping,
  DynamicLabel = data.DynamicLabel;
console.log("16DynamicLabel02_2");
utils.extend(DynamicLabel.prototype, {
  bbox: function (geojson) {
    const result = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
    return this.coordEach(geojson, coord => {
      result[0] > coord[0] && (result[0] = coord[0]), result[1] > coord[1] && (result[1] = coord[1]), result[2] < coord[0] && (result[2] = coord[0]), result[3] < coord[1] && (result[3] = coord[1])
    }), result
  },
  center: function (geojson, options = {}) {
    const ext = this.bbox(geojson),
      x = (ext[0] + ext[2]) / 2,
      y = (ext[1] + ext[3]) / 2;
    return {
      type: "Feature",
      properties: {},
      geometry: {
        type: "Point",
        coordinates: [x, y]
      }
    }
  },
  is_rect_intersect: function (bbox, extent) {
    var x01 = bbox[0],
      y01 = bbox[1],
      x02 = bbox[2],
      y02 = bbox[3],
      x11 = extent[0],
      y11 = extent[1],
      x12 = extent[2],
      y12 = extent[3],
      zx = Math.abs(x01 + x02 - x11 - x12),
      x = Math.abs(x01 - x02) + Math.abs(x11 - x12),
      zy = Math.abs(y01 + y02 - y11 - y12),
      y = Math.abs(y01 - y02) + Math.abs(y11 - y12);
    return zx <= x && zy <= y ? 1 : 0
  },
  rad: function (num) {
    return num * Math.PI / 180
  }
});


return {
  "utils": utils,
  "STUtil": STUtil,
  "Node": Node,
  "SplayTree": SplayTree,
  "isInBbox": isInBbox,
  "getBboxOverlap": getBboxOverlap,
  "cmp": cmp,
  "rounder": rounder,
  "geomIn": geomIn,
  "geomOut": geomOut,
  "operation": operation,
  "Segment": Segment,
  "SweepEvent": SweepEvent,
  "SweepLine": SweepLine,
  "polygonClipping": polygonClipping,
  "DynamicLabel": DynamicLabel
}